home *** CD-ROM | disk | FTP | other *** search
Wrap
GW-BASIC | 1981-05-28 | 4.8 KB | 129 lines
1 DIM C(23,80): S1=0: S2=0: WIDTH 80 2 KEY OFF:CLS 3 LOCATE 1,29: PRINT "Welcome to the Game of" 4 LOCATE 2,36: COLOR 0,7: PRINT "SURROUND": COLOR 7,0 5 LOCATE 3,25: PRINT "by Grant M. Bright, Tucson, Az" 6 LOCATE 5,1: PRINT "The object of this game is to maneuver a `";CHR$(2);"' around a maze without running into": PRINT "a wall or the trail left by either yourself or your opponent." 7 PRINT: PRINT "Two options are available:": PRINT: PRINT " 1. ONE PLAYER: The object here is to obtain the highest possible score" 8 PRINT: PRINT " 2. TWO PLAYER: The object here is to outscore your opponent by surviving": PRINT " the longest" 9 PRINT: PRINT "There are 3 levels of difficulty:": PRINT: PRINT " 1. BEGINNER": PRINT " 2. INTERMEDIATE": PRINT " 3. EXPERT": PRINT 10 INPUT "How many players (1 or 2)";PP 12 IF PP>2 OR PP<1 THEN 10 14 INPUT "Difficulty level (1, 2 or 3)";LL 16 IF LL>3 OR LL<1 THEN 14 20 CLS 25 FOR K=1 TO 80:LOCATE 1,K:PRINT CHR$(219);:C(1,K)=1:LOCATE 23,K:PRINT CHR$(219);:C(23,K)=1:NEXT 30 FOR L=2 TO 22:LOCATE L,1:PRINT CHR$(219):LOCATE L,80:PRINT CHR$(219):C(L,1)=1:C(L,80)=1:NEXT L 37 IF S1=0 AND S2=0 THEN 40 38 COLOR 8,7:LOCATE 23,7:PRINT"SCORE: PLAYER 1 = ";S1;"; PLAYER 2 = ";S2;"; FIRST TO 10 WINS THE GAME!!":COLOR 7,0 40 FOR K=5 TO 38: LOCATE 10,K: PRINT CHR$(219);:C(10,K)=1:LOCATE 14,K: PRINT CHR$(219);:C(14,K)=1:NEXT 44 FOR K=43 TO 76: LOCATE 10,K: PRINT CHR$(219);:C(10,K)=1:LOCATE 14,K: PRINT CHR$(219);:C(14,K)=1:NEXT 48 L1=0 49 FOR L2=1 TO 2 50 FOR L3=5 TO 8 51 L=L1+L3 52 LOCATE L,8:PRINT CHR$(219);:C(L,8)=1 53 LOCATE L,17:PRINT CHR$(219);:C(L,17)=1 54 LOCATE L,26:PRINT CHR$(219);:C(L,26)=1 55 LOCATE L,35:PRINT CHR$(219);:C(L,35)=1 56 LOCATE L,46:PRINT CHR$(219);:C(L,46)=1 57 LOCATE L,55:PRINT CHR$(219);:C(L,55)=1 58 LOCATE L,64:PRINT CHR$(219);:C(L,64)=1 59 LOCATE L,73:PRINT CHR$(219);:C(L,73)=1 60 NEXT L3 61 L1=11 62 NEXT L2 63 L=6 64 FOR L1=1 TO 4 65 K=5 66 FOR L2=1 TO 14 68 LOCATE L,K:PRINT CHR$(219);:C(L,K)=1 69 LOCATE L,K+38:PRINT CHR$(219);:C(L,K+38)=1 70 K=K+1 71 IF ((K=6 OR K=15) OR (K=24 OR K=33)) THEN K=K+5 72 NEXT L2 73 IF L1 = 1 THEN L=7 74 IF L1 = 2 THEN L=17 75 IF L1 = 3 THEN L=18 76 NEXT L1 78 K=5 79 FOR K1=1 TO 22 80 LOCATE 3,K:PRINT CHR$(219);:C(3,K)=1 81 LOCATE 3,K+38:PRINT CHR$(219);:C(3,K+38)=1 82 LOCATE 21,K:PRINT CHR$(219);:C(21,K)=1 83 LOCATE 21,K+38:PRINT CHR$(219);:C(21,K+38)=1 84 K=K+1 85 IF (K=11 OR K=20) OR K=29 THEN K=K+4 86 NEXT K1 87 IF PP = 2 THEN 90 88 LOCATE 11,20: PRINT "USE ";CHR$(24);",";CHR$(25);",";CHR$(27);",";CHR$(26);" TO CHANGE DIRECTION RESPECTIVELY." 89 GOTO 92 90 LOCATE 11,7:PRINT"PLAYER 1,2 USE A,Z,S,D AND ";CHR$(24);",";CHR$(25);",";CHR$(27);",";CHR$(26);" TO CHANGE DIRECTION RESPECTIVELY." 92 LOCATE 12,27:PRINT"PRESS SPACE BAR TO BEGIN" 94 V$=INKEY$:IF V$=" " THEN 96:ELSE 94 96 LOCATE 11,2:PRINT SPACE$(78) 97 IF PP=1 GOTO 99 98 LOCATE 12,2:PRINT SPACE$(78):LOCATE 12,30:PRINT CHR$(1):C(12,30)=1:LOCATE 12,51:PRINT CHR$(2):C(12,51)=1: GOTO 100 99 LOCATE 12,2:PRINT SPACE$(78):LOCATE 12,51:PRINT CHR$(2):C(12,51)=1 100 I1=12:J1=12:I2=30:J2=51:I3=3:J3=2:F=0 110 KEY(11) ON:KEY(12) ON:KEY(13) ON:KEY(14) ON 120 ON KEY(11) GOSUB 200 122 IF PP=1 GOTO 130 125 V$=INKEY$:IF V$="A" OR V$="a" THEN GOSUB 600 130 ON KEY(12) GOSUB 300 135 IF V$="S" OR V$="s" THEN GOSUB 700 140 ON KEY(13) GOSUB 400 145 IF V$="d" OR V$="D" THEN GOSUB 800 150 ON KEY(14) GOSUB 500 155 IF V$="Z" OR V$="z" THEN GOSUB 900 157 IF PP=1 GOTO 163 160 IF I3=1 THEN I1=I1-1:LOCATE I1,I2:PRINT CHR$(1):ELSE IF I3=2 THEN I2=I2-1:LOCATE I1,I2:PRINT CHR$(1):ELSE IF I3=3 THEN I2=I2+1:LOCATE I1,I2:PRINT CHR$(1):ELSE I1=I1+1:LOCATE I1,I2:PRINT CHR$(1) 162 IF C(I1,I2)=1 THEN 1000:ELSE C(I1,I2)=1 163 F=F+1: F1=5 164 ON LL GOTO 178,173,165 165 IF F>200 THEN F1=0.1: GOTO 178 166 IF F>150 THEN F1=0.25: GOTO 178 167 IF F>100 THEN F1=0.5: GOTO 178 168 IF F>80 THEN F1=1: GOTO 178 169 IF F>60 THEN F1=2: GOTO 178 170 IF F>40 THEN F1=3: GOTO 178 171 IF F>20 THEN F1=4: GOTO 178 172 GOTO 178 173 IF F>200 THEN F1=1: GOTO 178 174 IF F>125 THEN F1=2: GOTO 178 175 IF F>75 THEN F1=3: GOTO 178 176 IF F>25 THEN F1=4: GOTO 178 178 SOUND 50,F1 179 IF PP = 1 THEN GOTO 180 180 IF J3=1 THEN J1=J1-1:LOCATE J1,J2:PRINT CHR$(2):ELSE IF J3=2 THEN J2=J2-1:LOCATE J1,J2:PRINT CHR$(2):ELSE IF J3=3 THEN J2=J2+1:LOCATE J1,J2:PRINT CHR$(2):ELSE J1=J1+1:LOCATE J1,J2:PRINT CHR$(2) 190 IF C(J1,J2)=1 THEN 2000:ELSE C(J1,J2)=1 195 SOUND F*2+70,F1 197 GOTO 110 200 IF J3=4 THEN RETURN 1500:ELSE J3=1:RETURN 300 IF J3=3 THEN RETURN 1500:ELSE J3=2:RETURN 400 IF J3=2 THEN RETURN 1500:ELSE J3=3:RETURN 500 IF J3=1 THEN RETURN 1500:ELSE J3=4:RETURN 600 IF I3=4 THEN RETURN 1000:ELSE I3=1:RETURN 700 IF I3=3 THEN RETURN 1000:ELSE I3=2:RETURN 800 IF I3=2 THEN RETURN 1000:ELSE I3=3:RETURN 900 IF I3=1 THEN RETURN 1000:ELSE I3=4:RETURN 1000 LOCATE I1,I2:COLOR 21,0:PRINT CHR$(1):COLOR 7,0 1001 S2=S2+1 1002 IF S2<5 THEN 1600 1003 KEY(11) OFF:KEY(12) OFF:KEY(13) OFF:KEY(14) OFF 1004 COLOR 8,7:LOCATE 23,7:PRINT" PLAYER 2 WON, PRESS C TO PLAY AGAIN; E TO EXIT ":COLOR 7,0 1100 V$=INKEY$:IF V$="" THEN 1100:ELSE IF V$="C" OR V$="c" THEN CLEAR:GOTO 1 1120 IF V$="e" OR V$="E" THEN CHAIN "MENU",1000: ELSE 1100 1500 LOCATE J1,J2:COLOR 21,0:PRINT CHR$(2):COLOR 7,0 1501 S1=S1+1 1502 IF S1<5 THEN 1600 1503 KEY(11) OFF:KEY(12) OFF:KEY(13) OFF:KEY(14) OFF 1504 COLOR 8,7:LOCATE 23,7:PRINT" PLAYER 1 WON, PRESS C TO PLAY AGAIN; E TO EXIT ":COLOR 7,0:GOTO 1100 1600 KEY(11) OFF:KEY(12) OFF:KEY(13) OFF:KEY(14) OFF 1605 COLOR 8,7:LOCATE 23,3:PRINT"SCORE: PLAYER 1 = ";S1;"; PLAYER 2 = ";S2;"; FIRST TO 5 WINS!! # OF ";CHR$(2);" = ";F:COLOR 7,0 1620 FOR X=1 TO 23: FOR Y=1 TO 80: C(X,Y)=0: NEXT Y: NEXT X: GOTO 20 2000 IF PP=2 THEN 1500 2010 LOCATE J1,J2:COLOR 21,0:PRINT CHR$(2):COLOR 7,0 2020 KEY(11) OFF: KEY(12) OFF: KEY(13) OFF: KEY(14) OFF 2030 COLOR 8,7: LOCATE 23,3: PRINT" YOUR SCORE WAS ";F;". PRESS C TO PLAY AGAIN; E TO EXIT ":COLOR 7,0: GOTO 1100